package LeetCode刷题;

/**
 * @program: Java_Study
 * @author: Xiaofan
 * @createTime: 2021-11-23 14:36
 * @description: Functions of this class is
 * 官方题解：
 * public int maxLength (int[] arr) {
 *         // write code here
 *         if(arr.length < 2){
 *             return arr.length;
 *         }
 *
 *         HashMap<Integer, Integer> windows = new HashMap<>();
 *         int res = 0;
 *         //用双指针来模拟一个滑动窗口
 *         int left = -1;
 *         //窗口向右滑动
 *         for(int right = 0; right < arr.length; right++){
 *             //遇到重复数字
 *             if(windows.containsKey(arr[right])){
 *                 //因为有可能遇到的重复数字的位置 比 left还要前
 *                 //所以不能把left置于该位置前一位， 而是比较哪个最大，目的还是为了缩小窗口
 *                 //确保窗口内全是不重复的数字
 *                 left = Math.max(left, windows.get(arr[right]));
 *             }
 *             //每次更新窗口大小
 *             res = Math.max(res, right-left);
 *             //将数字位置更新到windows中
 *             windows.put(arr[right], right);
 *         }
 *         return res;
 *     }
 **/
public class No牛客最长无重复子串 {
    public static void main(String[] args) {
        System.out.println(maxLength(new int[]{2,3,4,5}));
    }
    public static int maxLength (int[] arr) {
        // write code here
        int len=arr.length;
        if(len<2){
            return len;
        }
        int left=0;
        int right=0;
        int maxLen=1;
        while(right<len){
            while(right+1<len&&arr[right+1]>arr[right]){
                ++right;
            }
            System.out.println(right);
            maxLen=Math.max(maxLen,right-left+1);
            left=++right;
        }
        return maxLen;
    }
}